home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 128 #32
/
q32side1.d64
/
t.lil red
< prev
next >
Wrap
Text File
|
2022-08-30
|
12KB
|
234 lines
LITTLE RED READER Version 2.00 (March 8, 1994)
MS-DOS file reader/writer for the C128 and 1571/81/FD drives
Program and Text by Craig Bruce (csbruce@neumann.uwaterloo.ca)
Interface Changed by Fender Tucker (May 8, 1996)
FENDER'S PREMUMBLE: Craig Bruce has introduced several excellent programs
into the Public Domain and this is one of the most useful. It allows you
to copy files between IBM computers and Commodore computers. I spent a
couple of delightful May evenings sprucing the program up, interface-wise,
but the guts of the program are all Craig's. His excellent docs have been
slightly edited to reflect the minor changes I might have made. Since
Craig's program is PD, this version is also. Pass it around to your
friends and tell them to thank Craig Bruce and LOADSTAR.
This program has been improved over version 1.00 to read and write High
Density MS-DOS disks on the CMD FD-2000 and FD-4000 disk drives. Just
select drive type "1581" for using these drives. Since the new version has
greater memory requirements, after starting up "ramdos" (if you use it) you
will have to execute the "graphic clr" BASIC command.
1. INTRODUCTION
This article presents a program that reads and writes MS-DOS files and the
root directory of MS-DOS disks. The program copies only from drive to
drive without buffering file data internally. This is simpler and imposes
no limits on the size of the files transferred, although it requires the
use of two disk drives (or a logical drive). The user-interface code is
written in BASIC and presents a full-screen file selection menu. The
grunt-work code is written in assembly language and operates at maximum
velocity.
The program also allows MS-DOS files to be deleted and allows the copying
of Commodore-DOS files between CBM-DOS disks (this makes it more convenient
to use the program with a temporary logical drive like RAMDOS). Also, since
I have a CMD FD-4000 floppy disk drive, I know that this program works with
MS-DOS disks with this drive (for both the 720K and 1.44M MS-DOS formats).
The FD disk drives are logically referred to below as being the 1581.
The Burst Command Instruction Set of the 1571/81 is used to read the MS-DOS
disk blocks and the standard kernel routines are used for outputting the
data. (I am an operating systems specialist, so I call it a kernEl!) Thus,
the MS-DOS files must be read from a 1571 or 1581 disk drive, but the
output device may be any disk drive type, the screen or a printer, or a
virtual drive type such as RAMLink, RAMDrive, or RAMDOS (for the REU). It
is interesting to note that the data can be read in from an MS-DOS disk
faster than it can be written out to a 1571, 1581, or even a RAMDOS file. A
RAMLink can swallow the data only slightly faster than it can be read.
Little Red Reader (LRR) supports double density 3.5" disks formatted with
80 tracks, 9 sectors per track, and 2 sides with a 1581 and 5.25" double
density disks formatted with 40 tracks, 9 sectors per track, and 2 sides
with a 1571, and now, high density 3.5" disks formatted with 80 tracks, 18
sectors per track, 2 sides, and a "12-bit FAT". A limit of 224 directory
entries and 9 File Allocation Table (FAT) sectors is imposed. There must
be 2 copies of the FAT and the cluster size may be 1 or 2 sectors. The
sector size must be 512 bytes.
The program runs on either the 40 or 80-column screens, but you will get
much better performance from the BASIC portion of the program by being in
80-column mode and FAST mode. A modification that someone might want to
make would be to spread-out the display for the 80-column screen and add
color to the rather bland display.
FENDER'S NOTE: Maybe blushing pink and crime-scene red weren't the colors
you had in mind, Craig, but you asked for it. I must say that your code
was a pleasure to edit.
Oh, about the name. It is a play on the name of another MS-DOS file copier
available for the C-128. "Little" means that it is smaller in scope than
the other program, and "Red" is a different primary color to avoid any
legal complications. It is also the non-white color of the flag of the
country of origin of this program (no, I am not Japanese). Also, this
program is Public Domain Software, as is all software I develop for 8-bit
Commodore Computers. Feel free to E-mail me if you have questions or
comments about this article.
2. USER GUIDE
LOAD and RUN the "lil red" BASIC program file. When the program is first
run, it will load in the binary machine language package from the "current"
Commodore DOS drive (the current drive is obtained from PEEK(186) - the
last device accessed). The binary package is loaded only on the first run
and is not reloaded on subsequent runs if the package ID field is in
place.
The system is designed to have two file selection menus: one for the MS-DOS
disk drive, and one for the Commodore-DOS disk drive (which may be a
logical disk drive). The idea for copying is that you select the files in
one of these menus, and then the program knows to copy them to the disk for
the other menu.
2.1. MS-DOS MENU
The main screen of the program is first displayed. The main screen of the
program will look something like this:
NUM S TRN TYP FILENAME EXT LENGTH
--- - --- --- -------- --- ------
1 * ASC SEQ HACK4 TXT 120732
2 BIN PRG RAMDOS SFX 34923
MS-DOS MS = 10:1581 CBM = 8 BYTES FREE:231456
D - Directory M - MS Device F - CBM Device C - Copy Q=Quit
T - Toggle All R - Remove X - CBM Copy / - Switch +/- Page
except that immediately after starting up, "Directory not loaded" will be
displayed rather than filenames. The "MS" fields give the device number
and type of the drive containing the MS-DOS disk to copy from, and the
"CBM" gives the device number of the drive/virtual drive/character device
to copy file data to. The number of bytes free on the drive are also
displayed (which is useful to know when writing files) and there are some
more commands.
Information about all MS-DOS files in the root directory of the MS-DOS disk
is displayed in columns below the drive information. "NUM" gives the
number of the MS-DOS file in the directory listing, and "S" indicates
whether the file is "selected" or not. If the file is selected, an
asterisk (*) is displayed; otherwise, a blank is displayed. When you later
enter Copy Mode, only the files that have been "selected" are copied.
The "TRN" field indicates the character translation scheme to be used when
the file is copied. A value of "BIN" (binary) means no translation and a
value of "ASC" (ascii) means the file characters are to be translated from
MS-DOS ASCII (or "ASCII-CrLf") to PETSCII. The "TYP" field indicates the
type of Commodore-DOS file to create for writing the MS-DOS file contents
into. The possible values are "SEQ" (sequential) and "PRG" (program). The
values of the TRN and TYP fileds are set independently, so you can copy
binary data to SEQ files and ascii data to PRG files if you wish.
The "FILENAME" and "EXT" fields give the filename and extension type of the
MS-DOS files and "LENGTH" gives the exact length of the files in bytes.
Note that if you perform "ASC" translation on a file, its PETSCII version
will have a shorter length.
FENDER'S NOTE: Since I am more comfortable with "blocks" rather than
"bytes" on a CBM disk, I changed the CBM directory to show blocks free
rather than bytes free. Change line 720 if you prefer bytes for both
formats.
2.2. USER COMMANDS
The bottom of the screen gives the command summary. After starting the
program, you will want to set up the MS-DOS and CBM-DOS drives with the "M"
and "F" commands. Simply press the (letter) key corresponding to the
command name to activate the command. Pressing M will prompt you for the
MS-DOS Drive Number and the MS-DOS Drive Type. In both cases, type the
number and press RETURN. (Sorry for insulting all non-novices out there,
but I want to be complete). The MS-DOS drive number cannot be the same as
the CBM-DOS drive number (since the program copies from drive-to-drive
without internal